//
//  HMBaseTableViewCell.swift
//  HealthMonitoring
//
//  Created by 珠海正杰 on 2018/4/8.
//  Copyright © 2018年 YTYanK. All rights reserved.
//  
/****
 *  重新写了 tableViewCell // 统一使用这个Cell
 */


import UIKit
import SwiftyJSON

public typealias HMTableViewCell = HMBaseTableViewCell

public class HMBaseTableViewCell: UITableViewCell {
    
    //MARK: - 变量
    /// 父 view controller
    public var rootViewController: UIViewController?
    /// 这个cell的indexPath
    public var indexPath: IndexPath?
    /// 数据
    public var cellData = NSDictionary()
    /// JSON
    private var json = JSON()
    
    // 必须的初始化方法
    required public init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        initCell()
    }
    override public init(style: UITableViewCellStyle, reuseIdentifier: String?) {
        super.init(style: style, reuseIdentifier: reuseIdentifier)
        initCell()
    }
    
    //MARK: - 方法
    private func initCell() {
        setupViews(view: contentView)
        setupAutoLayout()
        self.selectionStyle = UITableViewCellSelectionStyle.none
    }
    /***
     *  添加contentView约束(setup Constrains)
     */
    private func setupAutoLayout() {
        
    }
    /***
     * 更新contentView约束(update Constraints) //重写方法
     */
    override public func updateConstraints() {
       setupConstraints(view: contentView)
       super.updateConstraints()
    }
    /***
     * 设置-更新contentView约束(update Constraints) // 公开方法
     * - view : cell.contentView
     */
    public func setupConstraints(view: UIView) {
    }
    /***
     * 初始化contentView
     * - view : cell.contentView
     */
    public func setupViews(view: UIView) {
        
    }
    /***
     * 给cell添加数据内容 // 公开方法
     * - info :  数据内容
     */
    public func setInfo(info: NSDictionary) {
        self.cellData = info
        setupConstraints(view: contentView)
    }
    /***
     * 给cell添加数据内容 // 公开方法
     * - info :  数据内容
     */
    public func setJson(json: JSON) {
        self.json = json
    }
    /***
     *
     * 什么鬼？
     */
    public func setup() {
        self.setNeedsFocusUpdate() //设置需要焦点更新
        self.updateConstraintsIfNeeded() //如果需要更新约束
    }
   
//    override public func awakeFromNib() {
//        super.awakeFromNib()
//        // Initialization code
//    }
//
//    override public func setSelected(_ selected: Bool, animated: Bool) {
//        super.setSelected(selected, animated: animated)
//
//        // Configure the view for the selected state
//    }

}
